package cn.subingdz.webflux.socket.handler;

import org.springframework.web.reactive.socket.WebSocketHandler;
import org.springframework.web.reactive.socket.WebSocketSession;
import reactor.core.publisher.Mono;

import java.util.List;

public class MyWebSocketHandler implements WebSocketHandler {

    @Override
    public List<String> getSubProtocols() {
        return null;
    }

    @Override
    public Mono<Void> handle(WebSocketSession session) {
        return session.receive()    //访问入站消息流。
                .doOnNext(message -> {
                    // ...  对每条消息做一些事情
                })
                .concatMap(message -> {
                    // ...  执行使用消息内容的嵌套异步操作
                    return null;
                })
                .then();    // 接收完成时返回一个完成的。
    }
}
